﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace EC_ASS.Models
{
    public class ShoppingCart
    {
        public List<ShopItem> Items { get; private set; }

        // Readonly properties can only be set in initialization or in a constructor  
        public ShoppingCart()
        {
            Items = new List<ShopItem>();
        }

        // Thêm vào giỏ hàng
        public void AddItem(ShopItem item)
        {
            // Check hàng đã có hay chưa
            int position = Items.FindIndex(delegate(ShopItem match)
            {
                if (match.cID.Equals(item.cID) && match.cSize.Equals(item.cSize))
                {
                    return true;
                }
                else
                {
                    return false;
                }
            });
            if (position >= 0)
            {
                Items.ElementAt(position).cQuantity += item.cQuantity;
            }
            else
            {
                // Nếu chưa có thêm mới.
                Items.Add(item);
            }
        }

        // Tính tổng giá tiền
        public double GetTotal()
        {
            double total = 0;
            foreach (ShopItem item in Items)
            {
                total += item.cQuantity * item.cPrice;
            }
            return total;
        }

        // Xóa hàng khỏi giỏ hàng
        public void RemoveItem(ShopItem item)
        {
            // Check hàng đã có hay chưa
            ShopItem tmp = Items.Find(delegate(ShopItem match)
            {
                if (match.cID.Equals(item.cID))
                {
                    return true;
                }
                else
                {
                    return false;
                }
            });
            if (tmp != null)
            {
                Items.Remove(tmp);
            }
        }       
    }
}